import request from '../utils/api';

/**
 * 清洁管理服务类
 * 封装与清洁管理相关的API请求
 */
class CleaningService {
  /**
   * 获取清洁任务列表
   * @param page 页码
   * @param pageSize 每页数量
   * @param keyword 搜索关键词
   * @returns 清洁任务列表数据
   */
  async getCleaningList(page: number = 1, pageSize: number = 10, keyword: string = '') {
    try {
      return await request.get('cleaning/pageList', { page, pageSize, keyword });
    } catch (error) {
      console.error('获取清洁任务列表失败:', error);
      throw error;
    }
  }

  /**
   * 获取卫生检查列表
   * @param page 页码
   * @param pageSize 每页数量
   * @param keyword 搜索关键词
   * @returns 卫生检查列表数据
   */
  async getInspectionList(page: number = 1, pageSize: number = 10, keyword: string = '') {
    try {
      return await request.get('inspection/pageList', { page, pageSize, keyword });
    } catch (error) {
      console.error('获取卫生检查列表失败:', error);
      throw error;
    }
  }

  /**
   * 获取清洁任务详情
   * @param id 任务ID
   * @returns 清洁任务详情数据
   */
  async getCleaningDetail(id: number) {
    try {
      return await request.get(`/cleaning/${id}`);
    } catch (error) {
      console.error('获取清洁任务详情失败:', error);
      throw error;
    }
  }

  /**
   * 获取卫生检查详情
   * @param id 检查ID
   * @returns 卫生检查详情数据
   */
  async getInspectionDetail(id: number) {
    try {
      return await request.get(`/inspection/${id}`);
    } catch (error) {
      console.error('获取卫生检查详情失败:', error);
      throw error;
    }
  }

  /**
   * 创建清洁任务
   * @param cleaningData 清洁任务数据
   * @returns 创建后的清洁任务数据
   */
  async createCleaning(cleaningData: any) {
    try {
      return await request.post('cleaning/save', cleaningData);
    } catch (error) {
      console.error('创建清洁任务失败:', error);
      throw error;
    }
  }

  /**
   * 创建卫生检查
   * @param inspectionData 卫生检查数据
   * @returns 创建后的卫生检查数据
   */
  async createInspection(inspectionData: any) {
    try {
      return await request.post('inspection/save', inspectionData);
    } catch (error) {
      console.error('创建卫生检查失败:', error);
      throw error;
    }
  }

  /**
   * 更新清洁任务
   * @param id 任务ID
   * @param cleaningData 清洁任务数据
   * @returns 更新后的清洁任务数据
   */
  async updateCleaning(id: number, cleaningData: any) {
    try {
      return await request.put(`/cleaning/${id}`, cleaningData);
    } catch (error) {
      console.error('更新清洁任务失败:', error);
      throw error;
    }
  }

  /**
   * 更新卫生检查
   * @param id 检查ID
   * @param inspectionData 卫生检查数据
   * @returns 更新后的卫生检查数据
   */
  async updateInspection(id: number, inspectionData: any) {
    try {
      return await request.put(`/inspection/${id}`, inspectionData);
    } catch (error) {
      console.error('更新卫生检查失败:', error);
      throw error;
    }
  }

  /**
   * 删除清洁任务
   * @param id 任务ID
   * @returns 删除结果
   */
  async deleteCleaning(id: number) {
    try {
      return await request.delete(`/cleaning/${id}`);
    } catch (error) {
      console.error('删除清洁任务失败:', error);
      throw error;
    }
  }

  /**
   * 删除卫生检查
   * @param id 检查ID
   * @returns 删除结果
   */
  async deleteInspection(id: number) {
    try {
      return await request.delete(`/inspection/${id}`);
    } catch (error) {
      console.error('删除卫生检查失败:', error);
      throw error;
    }
  }
}

export default new CleaningService();